/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package persistencia.controller.jpa;

import java.util.List;
import javax.persistence.EntityManager;
import persistencia.controller.jpa.exceptions.NonexistentEntityException;
import persistencia.entidade.Categoria;

/**
 *
 * @author ademar.concrete
 */
public interface ICategoriaController {

    void create(Categoria categoria);

    void destroy(Integer id) throws NonexistentEntityException;

    void destroyRecursive(Integer id);

    void edit(Categoria categoria) throws NonexistentEntityException, Exception;

    Categoria findCategoria(Integer id);

    List<Categoria> findCategoriaEntities();

    List<Categoria> findCategoriaEntities(int maxResults, int firstResult);

    List<Categoria> findCategoriaEntitiesSemFilhas();

    List<Categoria> findCategoriaRaizEntities();

    int getCategoriaCount();

    EntityManager getEntityManager();

}
